/*
9. 回文数
给你一个整数 x ，如果 x 是一个回文整数，返回 true ；否则，返回 false 。

回文数是指正序（从左向右）和倒序（从右向左）读都是一样的整数。例如，121 是回文，而 123 不是。

时间复杂度 O(logn)

思路：
翻转 一半的数字，看两边是否相等。数字长度为奇数，则 判断 x == revertNum / 10;
(x !=0 && x % 10 ==0) 0 是特例，其余不是回文，负数也不是回文
*/
class Solution {
    public boolean isPalindrome(int x) {
        if(x < 0 ||(x !=0 && x % 10 ==0)){
            return false;
        }
        int revertNum = 0;
        while(x > revertNum){
            revertNum = revertNum * 10 + x % 10;
            x = x / 10;
        }
        return revertNum == x || x == revertNum / 10;
    }
}